const path = require("path");
const express = require("express");
const app = express();

const http = require("http");
// 创建服务
const server = http.createServer(app);
const { Server } = require("socket.io");
const io = new Server(server);

// 中间件：部署静态资源目录
// 所有静态资源就可以通过 http://localhost:3000/xxx 访问
app.use(express.static(path.resolve(__dirname, "public")));
// 通过express的app应用对象搭建路由
// app.get("/", (req, res) => {
//   res.send("<h1>Hello world</h1>");
// });

/* 
    io代表整个聊天室的所有内容
    socket代表某个连接室的用户

*/
// 监听事件，当用户端连接上服务器，触发connect事件
// socket就是连接上的客户端对象(用户)
io.on("connection", (socket) => {
  console.log("某个用户连接上了聊天室");
  // 服务器接收客户端消息(绑定事件)
  socket.on("ccc", (content) => {
    console.log("客户端发送消息了，消息内容");
    console.log(content);
  });

  // 服务器给客户端发送消息
  socket.emit("bbb", 11111); // 给socket客户端发送消息
  io.emit("bbb", 12222); // 给所有连接上的客户端发送消息
  socket.broadcast.emit("bbb", 22222); // 给除了socket以外所有连接上客户端发送消息
});

server.listen(3000, () => {
  console.log("服务器启动成功，访问地址：http://localhost:3000");
});
